﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// Pour en savoir plus sur le modèle d'élément Page de base, consultez la page http://go.microsoft.com/fwlink/?LinkId=234237

namespace WS_Manager_ShopMob.Views
{
    /// <summary>
    /// Page de base qui inclut des caractéristiques communes à la plupart des applications.
    /// </summary>
    public sealed partial class LogPage : WS_Manager_ShopMob.Common.LayoutAwarePage
    {
        private ViewModels.LogViewModel lvm = new ViewModels.LogViewModel();
        Model.IRepository repo = Model.Data.GetModel;
        public LogPage()
        {
            this.InitializeComponent();
            this.DataContext = lvm;
        }

        /// <summary>
        /// Remplit la page à l'aide du contenu passé lors de la navigation. Tout état enregistré est également
        /// fourni lorsqu'une page est recréée à partir d'une session antérieure.
        /// </summary>
        /// <param name="navigationParameter">Valeur de paramètre passée à
        /// <see cref="Frame.Navigate(Type, Object)"/> lors de la requête initiale de cette page.
        /// </param>
        /// <param name="pageState">Dictionnaire d'état conservé par cette page durant une session
        /// antérieure. Null lors de la première visite de la page.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
        }

        /// <summary>
        /// Conserve l'état associé à cette page en cas de suspension de l'application ou de la
        /// suppression de la page du cache de navigation. Les valeurs doivent être conformes aux
        /// exigences en matière de sérialisation de <see cref="SuspensionManager.SessionState"/>.
        /// </summary>
        /// <param name="pageState">Dictionnaire vide à remplir à l'aide de l'état sérialisable.</param>
        protected override void SaveState(Dictionary<String, Object> pageState)
        {
        }

        private void Valider_Click_1(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(txt_login.Text) && !String.IsNullOrEmpty(txt_password.Password))
            {
                repo.Connexion(txt_login.Text, txt_password.Password, delegate(string resu, Exception error)
                {
                    if (error == null)
                    {
                        var livreur = JsonConvert.DeserializeObject<DBO_ShopMob.Livreur>(resu);
                        if (livreur != null)
                        {
                            ViewModels.LivreurViewModel lvm = new ViewModels.LivreurViewModel() { Email = livreur.email, Id = livreur.id, IdMagasin = livreur.idMagasin, Password = livreur.password };
                            Frame.Navigate(typeof(MainPage), lvm);
                        }
                    }
                    else
                    {
                        
                    }
                });
            }
        }
    }
}
